Artificial-intelligence powered skill management systems and methods

ABSTRACT

Methods for routing customers to an agent include receiving a customer communication; representing the customer communication as an array of one or more agent skills desired to handle the customer communication in one hot coding format or as a vector with an induced metric using an embedding algorithm; routing the represented customer communication to an agent having the one or more agent skills; measuring performance of the agent in relation to the one or more agent skills during or after the customer communication; updating, in real-time, one or more performance scores of the agent in a skill profile, wherein the one or more performance scores are related to the one or more agent skills; and routing subsequent customer communications based on the updated one or more performance scores.

TECHNICAL FIELD

The present disclosure relates generally to routing customers to agentsassociated with a contact center, and more specifically to a system andmethod that monitors and estimates agent performance.

BACKGROUND

Agents are assigned skills based on special knowledge to routeinteractions to the right person and to balance workload. Adding ormodifying agent skills and proficiencies is done manually by a humansupervisor and can be time consuming for supervisors. New digital skillsincrease the complexity in skill assignments for supervisors. Upondeciding that an agent possesses a certain skill, the agent can receiveevery communication that is related to this skill.

An agent's skill level, however, is valid for only as long as theagent's skill has not changed. Thus, the measurement and monitoringprocess must be continuous to determine the agent's current skill level.Unfortunately, there is no simple way to estimate an agent's skill levelusing continuous quantifiable measures (e.g., key performance indicators(KPIs)). Therefore, supervisors rarely change an agent's skills or trainan agent. If such an action is taken, it is typically based on asubjective opinion, rather than based on an objective determination.

Accordingly, a need exists for improved methods and systems formonitoring agent skill levels, and using these skill levels to routecustomers to agents.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure is best understood from the following detaileddescription when read with the accompanying figures. It is emphasizedthat, in accordance with the standard practice in the industry, variousfeatures are not drawn to scale. In fact, the dimensions of the variousfeatures may be arbitrarily increased or reduced for clarity ofdiscussion.

FIG. 1 is a simplified block diagram of an embodiment of a contactcenter according to various aspects of the present disclosure.

FIG. 2 is a more detailed block diagram of the contact center of FIG. 1according to aspects of the present disclosure.

FIG. 3 is a flowchart of a method according to embodiments of thepresent disclosure.

FIGS. 4A-4C are screenshots of a supervisor dashboard according toembodiments of the present disclosure.

FIG. 5 is a graph displaying the difference in scores between agentsthat are monitored according to embodiments of the present disclosureand agents that are not.

FIG. 6 is a block diagram of a computer system suitable for implementingone or more components in FIG. 1 or 2 according to one embodiment of thepresent disclosure.

DETAILED DESCRIPTION

This description and the accompanying drawings that illustrate aspects,embodiments, implementations, or applications should not be taken aslimiting—the claims define the protected invention. Various mechanical,compositional, structural, electrical, and operational changes may bemade without departing from the spirit and scope of this description andthe claims. In some instances, well-known circuits, structures, ortechniques have not been shown or described in detail as these are knownto one of ordinary skill in the art.

In this description, specific details are set forth describing someembodiments consistent with the present disclosure. Numerous specificdetails are set forth in order to provide a thorough understanding ofthe embodiments. It will be apparent, however, to one of ordinary skillin the art that some embodiments may be practiced without some or all ofthese specific details. The specific embodiments disclosed herein aremeant to be illustrative but not limiting. One of ordinary skill in theart may realize other elements that, although not specifically describedhere, are within the scope and the spirit of this disclosure. Inaddition, to avoid unnecessary repetition, one or more features shownand described in association with one embodiment may be incorporatedinto other embodiments unless specifically described otherwise or if theone or more features would make an embodiment non-functional.

The present disclosure describes how skills and proficiencies areassigned and updated automatically for an agent based on data analysisusing reinforcement learning (RL), which makes the assignment andupdating of skills more accurate, can increase supervisor efficiency,and improves communication routing. The methods described herein offerthe ability to measure the performance of an agent online, leading tomore accurate determinations of skill levels and removing manualefforts. The methods leverage artificial intelligence (AI)/machinelearning algorithms to automatically identify and score agent skillsbased on transcription categorization on successful versus failed agentinteractions across all channels (e.g., voice and digital) in real-timeutilizing RL without any manual intervention from supervisors.

RL is the training of machine learning models to make a sequence ofdecisions to maximize the reward in a particular situation. It isemployed by various software and machines to find the best possiblebehavior or path that should be taken in a specific situation. The mainpower of RL is its ability to identify and quantify a specific skill ofan agent and its ability to identify changes in his/her performance overtime or during a time period.

Advantageously, the present systems and methods reveal the weaknessesand strengths of an agent. The systems and methods use the strengths ofthe agent to offer customer communications to the agent that the agentis likely to handle in a short duration and use the weaknesses of theagent to provide training to the agent. RL is an optimal tool for suchneeds due to its sensitivity to traffic fluctuations (i.e., changes insystem load).

In the present methods, the skills of the agent are the various optionsthat can be selected. For each agent profile, values for each skill areassigned. A reward function (e.g., handle time, solution criterion, orany other KPI) is defined. A customer communication with a given labelor categorization (e.g., financial, technical, tenure) is provided to anagent having the requisite skill. The reward function (e.g., KPI) iscalculated for the customer-agent interaction, and the agent profile isupdated for the relevant skill. As time goes on, statistical knowledgeabout the skills of the agent is compiled, and the profile of the agentis continuously updated. This knowledge is then used to determine whereto route future communications.

According to an exemplary embodiment, a customer communication in itscategorical representation is received. An available agent having therequisite skill(s) to handle the customer communication is assigned thecustomer communication. During or after the communication, a value for aKPI (e.g., handling time, satisfaction score, etc.) is calculated. TheKPI value is used to update the skills of the agent.

In several embodiments, the KPI value is compared to a threshold value.If the KPI value is greater than the threshold value, the match of thecustomer and the agent is successful, and the agent is likely to receivesimilar customer communications. If the KPI value is less than thethreshold value, management may be alerted. The probability that theagent will be offered similar communications in the future is reduced.If the agent continuously receives KPI values lower than the thresholdvalue, management may be alerted and training (and in extreme cases,removal of the skill from the agent's profile) may be recommended.

FIG. 1 is a simplified block diagram of an embodiment of a contactcenter 100 according to various aspects of the present disclosure. Theterm “contact center,” as used herein, can include any facility orsystem server suitable for receiving and recording electroniccommunications from customers. Such customer communications can include,for example, telephone calls, facsimile transmissions, e-mails, webinteractions, voice over IP (“VoIP”) and video. Various specific typesof communications contemplated through one or more of these channelsinclude, without limitation, email, SMS data (e.g., text), tweet,instant message, web-form submission, smartphone app, social media data,and web content data (including but not limited to internet survey data,blog data, microblog data, discussion forum data, and chat data), etc.In some embodiments, the communications can include customer tasks, suchas taking an order, making a sale, responding to a complaint, etc. Invarious aspects, real-time communication, such as voice, video, chat, ora combination such as voice and video, is preferably included. It iscontemplated that these communications may be transmitted by and throughany type of telecommunication device and over any medium suitable forcarrying data. For example, the communications may be transmitted by orthrough telephone lines, cable, or wireless communications. As shown inFIG. 1, the contact center 100 of the present disclosure is adapted toreceive and record varying electronic communications and data formatsthat represent an interaction that may occur between a customer (orcaller) and a contact center agent during fulfillment of a customer andagent transaction. In one embodiment, the contact center 100 records allof the customer calls in uncompressed audio format(s). In theillustrated embodiment, customers may communicate with agents associatedwith the contact center 100 via multiple different communicationnetworks such as a public switched telephone network (PSTN) 102 or theInternet 104. For example, a customer may initiate an interactionsession through traditional telephones 106, a fax machine 108, acellular (i.e., mobile) telephone 110, a personal computing device 112with a modem, or other legacy communication device via the PSTN 102.Further, the contact center 100 may accept internet-based interactionsessions from personal computing devices 112, VoIP telephones 114, andinternet-enabled smartphones 116 and personal digital assistants (PDAs).

Often, in contact center environments such as contact center 100, it isdesirable to facilitate routing of customer communications, particularlybased on agent availability, prediction of profile (e.g., personalitytype) of the customer occurring in association with a customerinteraction, matching of customer attributes to agent attributes, and/ormatching of customer needs to current agent skills, be it atelephone-based interaction, a web-based interaction, or other type ofelectronic interaction over the PSTN 102 or Internet 104.

As one of ordinary skill in the art would recognize, the illustratedexample of communication channels associated with a contact center 100in FIG. 1 is just an example, and the contact center may accept customerinteractions, and other analyzed interaction information and/or routingrecommendations from an analytics center, through various additionaland/or different devices and communication channels whether or notexpressly described herein.

For example, in some embodiments, internet-based interactions and/ortelephone-based interactions may be routed through an analytics center120 before reaching the contact center 100 or may be routedsimultaneously to the contact center and the analytics center (or evendirectly and only to the contact center). Also, in some embodiments,internet-based interactions may be received and handled by a marketingdepartment associated with either the contact center 100 or analyticscenter 120. The analytics center 120 may be controlled by the sameentity or a different entity than the contact center 100. Further, theanalytics center 120 may be a part of, or independent of, the contactcenter 100.

FIG. 2 is a more detailed block diagram of an embodiment of the contactcenter 100 according to aspects of the present disclosure. As shown inFIG. 2, the contact center 100 is communicatively coupled to the PSTN102 via a distributed private branch exchange (PBX) switch 130 and/orACD 130. The PBX switch 130 provides an interface between the PSTN 102and a local area network (LAN) 132 within the contact center 100. Ingeneral, the PBX switch 130 connects trunk and line station interfacesof the PSTN 102 to components communicatively coupled to the LAN 132.The PBX switch 130 may be implemented with hardware or virtually. Ahardware-based PBX may be implemented in equipment located local to theuser of the PBX system. In contrast, a virtual PBX may be implemented inequipment located at a central telephone service provider that deliversPBX functionality as a service over the PSTN 102. Additionally, in oneembodiment, the PBX switch 130 may be controlled by software stored on atelephony server 134 coupled to the PBX switch. In another embodiment,the PBX switch 130 may be integrated within telephony server 134. Thetelephony server 134 incorporates PBX control software to control theinitiation and termination of connections between telephones within thecontact center 100 and outside trunk connections to the PSTN 102. Inaddition, the software may monitor the status of all telephone stationscoupled to the LAN 132 and may be capable of responding to telephonyevents to provide traditional telephone service. In certain embodiments,this may include the control and generation of the conventionalsignaling tones including without limitation dial tones, busy tones,ring back tones, as well as the connection and termination of mediastreams between telephones on the LAN 132. Further, the PBX controlsoftware may programmatically implement standard PBX functions such asthe initiation and termination of telephone calls, either across thenetwork or to outside trunk lines, the ability to put calls on hold, totransfer, park and pick up calls, to conference multiple callers, and toprovide caller ID information. Telephony applications such as voice mailand auto attendant may be implemented by application software using thePBX as a network telephony services provider.

ACD 130 distributes customer communications or tasks to agents.Generally, ACD 130 is part of a switching system designed to receivecustomer communications and queue them. In addition, ACD 130 as showndistributes communications to agents or specific groups of agentstypically according to a prearranged scheme. In one embodiment, ACD 130is integrated with PBX switch 130, and directs customer communicationsto one of a plurality of agent workstations 140.

ACDs are specialized systems that are configured to match customercommunications to an available contact center agent. ACDs generallyreceive incoming communications, determine where to route a particularcustomer communication, and connect the customer communication to anavailable agent. For the purposes of the present disclosure, “ACD”refers to any combination of hardware, software and/or embedded logicthat is operable to automatically distribute incoming communications,including requests for service transmitted using any audio and/or videomeans, including signals, data or messages transmitted through voicedevices, text chat, web sessions, facsimile, instant messaging ande-mail.

According to an exemplary embodiment, ACD 130 includes a processor, anetwork interface, and a memory module or database. The networkinterface joins ACD 130 with LAN 132. Once ACD 130 receives a customercommunication, the processor determines which of a plurality of agentsshould receive the communication. For example, the processor may accessthe memory module, which stores code executed by the processor toperform various tasks.

In various embodiments, the processor includes a plurality of engines ormodules. Examples of suitable engines include a distributor engine, aqueue engine, and a monitor engine. The distributor engine distributesincoming customer communications to available agents, the queue enginemonitors and maintains customer communications that are waiting to beconnected to agents, and the monitor engine checks the status and skillsof agents and stores appropriate information in the memory module.

The memory module stores various information about agents at the contactcenter, including, but not limited to, agent skills or attributes, agentlocation, and agent availability. Various alternative embodiments of ACD130 may store different or additional information useful forcommunication routing as well. Over time, the monitor engine updatesagent skills information, location information, and availability basedon changes in agent status detected.

Generally, ACD 130 receives incoming communications that may be handledby one of the agents at the contact center. The distributor engineconnects each communication to an appropriate available agent if theagent is available. If the agent is not available, the communication isgenerally held by the queue engine until the agent becomes available.While a customer is waiting for an agent, ACD 130 may collect data fromthe customer or perform other automated processes. Once the agent isavailable, the distributor engine routes the communication to the agent.

In one embodiment, the telephony server 134 includes a trunk interfacethat utilizes conventional telephony trunk transmission supervision andsignaling protocols required to interface with the outside trunkcircuits from the PSTN 102. The trunk lines carry various types oftelephony signals such as transmission supervision and signaling, audio,fax, or modem data to provide plain old telephone service (POTS). Inaddition, the trunk lines may carry other communication formats such T1,ISDN or fiber service to provide telephony or multimedia data images,video, text or audio.

The telephony server 134 includes hardware and software components tointerface with the LAN 132 of the contact center 100. In one embodiment,the LAN 132 may utilize IP telephony, which integrates audio and videostream control with legacy telephony functions and may be supportedthrough the H.323 protocol. H.323 is an International TelecommunicationUnion (ITU) telecommunications protocol that defines a standard forproviding voice and video services over data networks. H.323 permitsusers to make point-to-point audio and video phone calls over a localarea network. IP telephony systems can be integrated with the publictelephone system through an IP/PBX-PSTN gateway, thereby allowing a userto place telephone calls from an enabled computer. For example, a callfrom an IP telephony client within the contact center 100 to aconventional telephone outside of the contact center would be routed viathe LAN132 to the IP/PBX-PSTN gateway. The IP/PBX-PSTN gateway wouldthen translate the H.323 protocol to conventional telephone protocol androute the call over the PSTN 102 to its destination. Conversely, anincoming call from a customer over the PSTN 102 may be routed to theIP/PBX-PSTN gateway, which translates the conventional telephoneprotocol to H.323 protocol so that it may be routed to a VoIP-enablephone or computer within the contact center 100.

The contact center 100 is further communicatively coupled to theInternet 104 via hardware and software components within the LAN 132.One of ordinary skill in the art would recognize that the LAN 132 andthe connections between the contact center 100 and external networkssuch as the PSTN 102 and the Internet 104 as illustrated by FIG. 2 havebeen simplified for the sake of clarity and the contact center mayinclude various additional and/or different software and hardwarenetworking components such as routers, switches, gateways, networkbridges, hubs, and legacy telephony equipment.

As shown in FIG. 2, the contact center 100 includes a plurality of agentworkstations 140 that enable agents employed by the contact center 100to engage in customer interactions over a plurality of communicationchannels. In one embodiment, each agent workstation 140 may include atleast a telephone and a computer workstation. In other embodiments, eachagent workstation 140 may include a computer workstation that providesboth computing and telephony functionality. Through the workstations140, the agents may engage in telephone conversations with the customer,respond to email inquiries, receive faxes, engage in instant messageconversations, text (e.g., SMS, MMS), respond to website-based inquires,video chat with a customer, and otherwise participate in variouscustomer interaction sessions across one or more channels includingsocial media postings (e.g., Facebook, LinkedIn, etc.). Further, in someembodiments, the agent workstations 140 may be remotely located from thecontact center 100, for example, in another city, state, or country.Alternatively, in some embodiments, an agent may be a software-basedapplication configured to interact in some manner with a customer. Anexemplary software-based application as an agent is an online chatprogram designed to interpret customer inquiries and respond withpre-programmed answers.

The contact center 100 further includes a contact center control system142 that is generally configured to provide recording, voice analysis,behavioral analysis, text analysis, storage, and other processingfunctionality to the contact center 100. In the illustrated embodiment,the contact center control system 142 is an information handling systemsuch as a computer, server, workstation, mainframe computer, or othersuitable computing device. In other embodiments, the control system 142may be a plurality of communicatively coupled computing devicescoordinated to provide the above functionality for the contact center100. The control system 142 includes a processor 144 that iscommunicatively coupled to a system memory 146, a mass storage device148, and a communication module 150. The processor 144 can be any custommade or commercially available processor, a central processing unit(CPU), an auxiliary processor among several processors associated withthe control system 142, a semiconductor-based microprocessor (in theform of a microchip or chip set), a macroprocessor, a collection ofcommunicatively coupled processors, or any device for executing softwareinstructions. The system memory 146 provides the processor 144 withnon-transitory, computer-readable storage to facilitate execution ofcomputer instructions by the processor. Examples of system memory mayinclude random access memory (RAM) devices such as dynamic RAM (DRAM),synchronous DRAM (SDRAM), solid state memory devices, and/or a varietyof other memory devices known in the art. Computer programs,instructions, and data, such as known voice prints, may be stored on themass storage device 148. Examples of mass storage devices may includehard discs, optical disks, magneto-optical discs, solid-state storagedevices, tape drives, CD-ROM drives, and/or a variety of other massstorage devices known in the art. Further, the mass storage device maybe implemented across one or more network-based storage systems, such asa storage area network (SAN). The communication module 150 is operableto receive and transmit contact center-related data between local andremote networked systems and communicate information such as customerinteraction recordings between the other components coupled to the LAN132. Examples of communication modules may include Ethernet cards,802.11 WiFi devices, cellular data radios, and/or other suitable devicesknown in the art. The contact center control system 142 may furtherinclude any number of additional components, which are omitted forsimplicity, such as input and/or output (I/O) devices (or peripherals),buses, dedicated graphics controllers, storage controllers, buffers(caches), and drivers. Further, functionality described in associationwith the control system 142 may be implemented in software (e.g.,computer instructions), hardware (e.g., discrete logic circuits,application specific integrated circuit (ASIC) gates, programmable gatearrays, field programmable gate arrays (FPGAs), etc.), or a combinationof hardware and software.

According to one aspect of the present disclosure, the contact centercontrol system 142 is configured to record, collect, and analyzecustomer voice data and other structured and unstructured data, andother tools may be used in association therewith to increase efficiencyand efficacy of the contact center. As an aspect of this, the controlsystem 142 is operable to record unstructured interactions betweencustomers and agents occurring over different communication channelsincluding without limitation telephone conversations, email exchanges,website postings, social media communications, smartphone application(i.e., app) communications, fax messages, texts (e.g., SMS, MMS, etc.),and instant message conversations. For example, the control system 142may include a hardware or software-based recording server to capture theaudio of a standard or VoIP telephone connection established between anagent workstation 140 and an outside customer telephone system. Further,the audio from an unstructured telephone call or video conferencesession (or any other communication channel involving audio or video,e.g., a Skype call) may be transcribed manually or automatically andstored in association with the original audio or video. In oneembodiment, multiple communication channels (i.e., multi-channel) may beused, either in real-time to collect information, for evaluation, orboth. For example, control system 142 can receive, evaluate, and storetelephone calls, emails, and fax messages. Thus, multi-channel can referto multiple channels of interaction data, or analysis using two or morechannels, depending on the context herein.

In addition to unstructured interaction data such as interactiontranscriptions, the control system 142 is configured to capturedstructured data related to customers, agents, and their interactions.For example, in one embodiment, a “cradle-to-grave” recording may beused to record all information related to a particular telephone callfrom the time the call enters the contact center based on the later of:the caller hanging up or the agent completing the transaction. All or aportion of the interactions during the call may be recorded, includinginteraction with an interactive voice response (IVR) system, time spenton hold, data keyed through the caller's key pad, conversations with theagent, and screens displayed by the agent at his/her station during thetransaction. Additionally, structured data associated with interactionswith specific customers may be collected and associated with eachcustomer, including without limitation the number and length of callsplaced to the contact center, call origination information, reasons forinteractions, outcome of interactions, average hold time, agent actionsduring interactions with customer, manager escalations during calls,types of social media interactions, number of distress events duringinteractions, survey results, and other interaction information. Inaddition to collecting interaction data associated with a customer, thecontrol system 142 is also operable to collect biographical profileinformation specific to a customer including without limitation customerphone number, account/policy numbers, address, employment status,income, gender, race, age, education, nationality, ethnicity, maritalstatus, credit score, customer “value” data (i.e., customer tenure,money spent as customer, etc.), personality type (as determined by pastinteractions), and other relevant customer identification and biologicalinformation. The control system 142 may also collect agent-specificunstructured and structured data including without limitation agentpersonality type, gender, language skills, technical skills, performancedata (e.g., customer retention rate, etc.), tenure and salary data,training level, average hold time during interactions, managerescalations, agent workstation utilization, and any other agent datarelevant to contact center performance. Additionally, one of ordinaryskill in the art would recognize that the types of data collected by thecontact center control system 142 that are identified above are simplyexamples and additional and/or different interaction data, customerdata, agent data, and telephony data may be collected and processed bythe control system 142.

The control system 142 may store recorded and collected interaction datain a database 152, including customer data and agent data. In certainembodiments, agent data, such as agent scores for dealing withcustomers, are updated daily.

The control system 142 may store recorded and collected interaction datain a database 152. The database 152 may be any type of reliable storagesolution such as a RAID-based storage server, an array of hard disks, astorage area network of interconnected storage devices, an array of tapedrives, or some other scalable storage solution located either withinthe contact center or remotely located (i.e., in the cloud). Further, inother embodiments, the contact center control system 142 may have accessnot only to data collected within the contact center 100 but also datamade available by external sources such as a third-party database 154.In certain embodiments, the control system 142 may query the third-partydatabase for customer data such as credit reports, past transactiondata, and other structured and unstructured data.

Additionally, in some embodiments, an analytics system 160 may alsoperform some or all of the functionality ascribed to the contact centercontrol system 142 above. For instance, the analytics system 160 mayrecord telephone and internet-based interactions, and/or performbehavioral analyses. The analytics system 160 may be integrated into thecontact center control system 142 as a hardware or software module andshare its computing resources 144, 146, 148, and 150, or it may be aseparate computing system housed, for example, in the analytics center120 shown in FIG. 1. In the latter case, the analytics system 160includes its own processor and non-transitory computer-readable storagemedium (e.g., system memory, hard drive, etc.) on which to storeanalytics software and other software instructions.

Referring now to FIG. 3, a method 300 for routing customercommunications is described. At step 302, ACD 130 receives a customercommunication. The communication type may include any of the channelsdiscussed herein or available to those of ordinary skill in the art,including without limitation one or more voice calls, voice over IP,facsimiles, emails, web page submissions, internet chat sessions,wireless messages (e.g., text messages such as SMS (short messagingsystem) messages or paper messages), short message service (SMS),multimedia message service (MMS), or social media (e.g., Facebookidentifier, Twitter identifier, etc.), IVR telephone sessions, voicemailmessages (including emailed voice attachments), or any combinationthereof. In one embodiment, the communication is a telephonicinteraction.

At step 304, ACD 130 represents the customer communication as an arrayof one or more agent skills desired to handle the customer communicationin one hot coding format or as a vector with an induced metric using anembedding algorithm.

One hot encoding is a representation of categorical variables as binaryvectors, and is the natural way to represent the customer communication.For example, consider an agent having experience in five skills(billing, charging, technical, retainment/retention, and Spanish). Acustomer communication in Spanish is received for a customer that wishesto stop doing business with the company (“churn”).

Each agent skill can be represented as follows:

Billing =[1,0,0,0,0] Charging =[0,1,0,0,0] Technical =[0,0,1,0,0]Retainment =[0,0,0,1,0] Spanish =[0,0,0,0,1]

The customer communication is therefore represented as vector[0,0,0,1,1] (combined vector of retainment and Spanish skills). Thisvector indicates which agent skills are to be called in a table of agentskills.

A more sophisticated approach to representing the customer communicationis to use an embedding algorithm, which can provide insights that mayallow a certain level of compression. Each presentation of the agentskill is converted to a vector with an induced metric. Auto encoders maybe considered for this purpose.

Auto encoders are deep learning engines that were originally specifiedfor mapping data with high dimensions to data with lower dimensions.Thus, they are commonly used in image applications as well as text (suchas embedding). Auto encoders include: (1) an encoder and (2) a decoder.The encoder receives real data (such as images or sentences in their onehot coding format), and through a sequence of deep learning layers(mainly deep neural learning (DNN) or long short-term memory (LSTM)),maps the data into a smaller dimension. The decoder in turn takes theoutput of the encoder and remaps it to the original data. Trainingincludes measuring the distance between the input of the encoder and theoutput of the decoder.

Using a keras model:

Layer (Type) Output Shape Parameter # input (InputLayer) (None, 5) N/Adense_1 (Dense) (None, 4) N/A leaky_re_lu_1 (LeakyReLU) (None, 4) N/AEmbedd (Dense) (None, 3) N/A

In an exemplary embodiment, the auto encoder can be trained to createthe function f:D(f([0,0,0,0,1]),f([0,0,0,1,1]))<(D(f([0,1,0,0,0]),f([0,0,0,1,0])))

At step 306, ACD 130 routes the represented customer communication to anagent having the one or more agent skills desired to handle the customercommunication. For example, the represented customer communication canbe matched to a table of skills for an agent to determine if the agentis capable of or adept at handling the communication.

At step 308, ACD 130 measures the performance of the agent in relationto the one or more agent skills during or after the customercommunication. In various embodiment, ACD 130 defines a KPI in relationto each of the one or more agent skills and measures each KPI during orafter the customer communication.

KPIs are a measurable value that demonstrates how effectively a company,department, team, or individual is achieving business goals. The KPIsanalyze and help identify synergies, opportunities and improvementareas. The KPIs are flexible and can be any type of performanceindicator, such as one or more of a call length, a satisfaction surveyscore, or a customer desire for another agent. In some embodiments, theKPIs include sales per agent, active waiting calls, longest call hold,peak hour traffic, revenue per successful call, call center statusmetrics, call abandonment, handle time, cost per call, on hold time,call resolution, repeat calls, or any combination thereof.

At step 310, ACD 130 updates, in real-time, one or more performancescores of the agent in a skill profile or table. The one or moreperformance scores are related to the one or more agent skills.Advantageously, in various embodiments, ACD 130 automatically computesan agent's effective skill level and automatically updates the agent'seffective skill level as changes in the agent's effective skills aremeasured so the agent's effective skill level is up-to-date.

In one example, after the KPI is measured, the old score for the agentskill (i.e., an older aggregated KPI score) is updated based on anupdate rule, which can be any weighted mean, median, or average. The oldKPI score is then replaced with a new KPI score.

In another example, a median time duration is used to update a score.The historical call lengths of an agent can be considered:List_of_min=[1.5,2,1.6,3.1,3.2,2.5,4.1,3.7]

The call length for a current communication is measured at 3 minutes and45 seconds (3.75 minutes).

List_of_min.append(3.75) List_of_min.sort( ) 4 len_history =len(List_of_min) 5 score =list_of_min[len_histor/2] 6 F[billing]=score

In yet another example, the previous score is used and a weighting foreach score is applied (e.g., 0.9 of the old score and 0.1 of the newscore):

Old_score=F[billing] List_of_min.append(3.75) #just for trackingNew_score =0.9*old_score+0.1*3.75 F[billing]=new_score

In an additional example, every communication receives a score between 0to 10. Previous customer satisfaction scores of the agent may be [1, 0,1, 10, 9, 1, 3, 4, 9]. After an agent takes a customer communication,the agent receives a score of 9. Again, the old score and the new scorecan be given different weights to calculate an updated score (e.g., 0.9for old score and 0.1 for new score).

List_of_survey.append(9) Old_score=F[billing] 1 New_score=0.9*old_score+0.1*9 2 F[billing]=new_score

If the communication is labeled with more than a single skill (e.g.,[0,0,1,0,1] or [1,1,0,0,0]), the above process is performed for eachskill:

F[billing]=0.1*9+0.9*old_score_billingF[financial]=0.1*9+0.9*old_score_financial

In certain embodiments, as shown in step 314, a threshold score for eachKPI is defined, and the threshold score for each KPI is compared to eachupdated performance score. The KPI estimates the agent's skill, and maydiffer from skill to skill. Accordingly, the threshold (or thresholdscore) for each KPI may differ for each skill since different skills mayimply different distributions. The thresholds may derive as percentilesof the KPI distributions.

In some embodiments, as shown in step 316, ACD 130 determines if theupdated performance score(s) are greater than the respective thresholdscore. ACD 130 may provide an alert to an agent supervisor when anupdated performance score is above or below the threshold score for arespective KPI. If the agent's updated score is above the threshold, theagent may receive a reward as shown in step 318. In several embodiments,when the updated performance score is above the threshold score, theagent is rewarded. For example, the agent may be given a bonus. If theagent's updated score is below the threshold, the agent supervisor candetermine whether the agent needs more training or in extremecircumstances, whether the skill should be removed from the profile ofthe agent. In certain embodiments, ACD 130 recommends training of theagent or removal of an agent skill from the skill profile when theupdated performance score is below the threshold score for therespective KPI as shown in step 320.

At step 312, ACD 130 routes subsequent customer communications based onthe updated one or more performance scores.

In several embodiments, the skill level of the agent is continuously andautomatically monitored and updated to ensure that each customercommunication received is routed to the best agent. Accordingly, incertain embodiments, ACD 130 routes a plurality of additional customercommunications to the agent based on the skill profile of the agent,continuously measures performance of the agent in relation to a skill inthe skill profile during or after each additional customercommunication, continuously updates, in real-time, a performance scoreof the agent in the skill profile, and routes a plurality of futurecustomer communications based on the updated performance score.

In some embodiments, ACD 130 displays the one or more updatedperformance scores of the agent, one or more trends in the one or moreperformance scores of the agent, or both, on a graphical user interface.For example, a supervisor dashboard to review skills and trends ofdifferent agents may be provided. The dashboard allows supervisors tomonitor trends of skills over time for agents and teams. Advantageously,the dashboard allows managers to monitor agents' performances and makedecisions regarding training, updating proficiencies, or in extremeevents, removing a skill from an agent profile.

The algorithms described above may advantageously provide insights on anagent's performance against the skills assigned to the agent. Thedashboard may be refreshed every few seconds, for example, to presentnew scores and trends for each agent in real-time. For example,referring to FIG. 4A, an exemplary dashboard 400 is illustrated thatincludes a list 405 of agents, their scores, and trends of their scores.As can be seen, scores for Yoav Alroy, Tal Raskin, Ifat Shwartz, and ObiWan are trending upwards, while scores for Michael Segal, Natan Katz,and Luke Skywalker are trending downwards. In an exemplary embodiment,scores that are trending upwards are displayed in green, while scoresthat are trending downwards are displayed in red. Alternative colors maybe used, of course.

In FIG. 4B, a graphical representation 410 of the skills trends for ObiWan is provided for a variety of skills (technology, retainment, mental,and Spanish), along with the current scores for Obi Wan's skills. A newskill (billing) has also been added to Obi Wan's profile. Asillustrated, Obi Wan's technology skills are on a downward trend, andthis trend is highlighted for the agent supervisor, along with arecommendation that the agent should be provided training or coaching.In FIG. 4C, the supervisor selects the “coach agent” button so that ObiWan can be provided with appropriate training.

Thus, the supervisor can monitor the trends and easily identify agentswith a negative trend for a given skill, set of skills, or in general,and may also be able to identify agents having merely an off-day that isnot a trend or indicative of general performance. The supervisor canzoom into a specific agent's performance by clicking on the agent namein the list. A detailed view appears with the agent's skills and scoretrends over time. The agent skill scores trend view allows thesupervisor to identify skills with negative trends and assign a trainingplan for improvement or to take alternative action(s).

Referring now to FIG. 5, shown is a graph displaying the difference inscores between agents who are continuously monitored according to thepresent disclosure and agents who are not. Monitoring the agentscontinuously creates an advantage in the scores as time progresses, asthe monitored agents generally have higher scores than agents who arenot monitored.

Referring now to FIG. 6, illustrated is a block diagram of a system 600suitable for implementing embodiments of the present disclosure,including ACD 130. System 600, such as part a computer and/or a networkserver, includes a bus 602 or other communication mechanism forcommunicating information, which interconnects subsystems andcomponents, including one or more of a processing component 604 (e.g.,processor, micro-controller, digital signal processor (DSP), etc.), asystem memory component 606 (e.g., RAM), a static storage component 608(e.g., ROM), a network interface component 612, a display component 614(or alternatively, an interface to an external display), an inputcomponent 616 (e.g., keypad or keyboard), and a cursor control component618 (e.g., a mouse pad).

In accordance with embodiments of the present disclosure, system 600performs specific operations by processor 604 executing one or moresequences of one or more instructions contained in system memorycomponent 606. Such instructions may be read into system memorycomponent 606 from another computer readable medium, such as staticstorage component 608. These may include instructions to measureperformance of an agent, update performance score of an agent, and routecustomer communications based on the updated performance score of theagent. In other embodiments, hard-wired circuitry may be used in placeof or in combination with software instructions for implementation ofone or more embodiments of the disclosure.

Logic may be encoded in a computer readable medium, which may refer toany medium that participates in providing instructions to processor 604for execution. Such a medium may take many forms, including but notlimited to, non-volatile media, volatile media, and transmission media.In various implementations, volatile media includes dynamic memory, suchas system memory component 606, and transmission media includes coaxialcables, copper wire, and fiber optics, including wires that comprise bus602. Memory may be used to store visual representations of the differentoptions for searching or auto-synchronizing. In one example,transmission media may take the form of acoustic or light waves, such asthose generated during radio wave and infrared data communications. Somecommon forms of computer readable media include, for example, RAM, PROM,EPROM, FLASH-EPROM, any other memory chip or cartridge, carrier wave, orany other medium from which a computer is adapted to read.

In various embodiments of the disclosure, execution of instructionsequences to practice the disclosure may be performed by system 600. Invarious other embodiments, a plurality of systems 600 coupled bycommunication link 620 (e.g., networks 102 or 104 of FIG. 2, LAN 132,WLAN, PTSN, or various other wired or wireless networks) may performinstruction sequences to practice the disclosure in coordination withone another. Computer system 600 may transmit and receive messages,data, information and instructions, including one or more programs(i.e., application code) through communication link 620 andcommunication interface 612. Received program code may be executed byprocessor 604 as received and/or stored in disk drive component 610 orsome other non-volatile storage component for execution.

The Abstract at the end of this disclosure is provided to comply with 37C.F.R. § 1.72(b) to allow a quick determination of the nature of thetechnical disclosure. It is submitted with the understanding that itwill not be used to interpret or limit the scope or meaning of theclaims.

What is claimed is:
 1. An agent skill management system comprising: a processor and a computer readable medium operably coupled thereto, the computer readable medium comprising a plurality of instructions stored in association therewith that are accessible to, and executable by, the processor, to perform operations which comprise: receiving a customer communication; representing the customer communication as a vector of one or more agent skills desired to handle the customer communication, the vector having an induced metric, wherein an auto encoder is used to convert the one or more agent skills to the vector having an induced metric; routing the represented customer communication to an agent having the one or more agent skills; measuring performance of the agent in relation to the one or more agent skills during or after the customer communication based on data analysis using reinforcement learning; updating, in real-time, one or more performance scores of the agent in a skill profile based on data analysis using reinforcement learning, wherein the one or more performance scores are related to the one or more agent skills; and routing subsequent customer communications based on the updated one or more performance scores.
 2. The agent skill management system of claim 1, wherein measuring performance of the agent comprises: defining a key performance indicator (KPI) in relation to each of the one or more agent skills; and measuring each KPI during or after the customer communication.
 3. The agent skill management system of claim 2, wherein the KPI comprises one or more of a call length, a satisfaction survey score, or a customer desire for another agent.
 4. The agent skill management system of claim 2, wherein the operations further comprise: defining a threshold score for each KPI; and comparing the threshold score for each KPI to each updated performance score.
 5. The agent skill management system of claim 4, wherein the operations further comprise providing an alert to an agent supervisor when an updated performance score is above or below the threshold score for a respective KPI.
 6. The agent skill management system of claim 5, wherein the operations further comprise recommending training of the agent or removal of an agent skill from the skill profile when the updated performance score is below the threshold score for the respective KPI.
 7. The agent skill management system of claim 1, wherein the operations further comprise: routing a plurality of additional customer communications to the agent based on the skill profile of the agent; continuously measuring performance of the agent in relation to a skill in the skill profile during or after each additional customer communication; continuously updating, in real-time, a performance score of the agent in the skill profile, wherein the performance score is related to the skill in the skill profile; and routing a plurality of future customer communications based on the updated performance score.
 8. A method, which comprises: receiving, by a processor, a customer communication; representing, by a processor, the customer communication as a vector of one or more agent skills desired to handle the customer communication, the vector having an induced metric, wherein an auto encoder is used to convert the one or more agent skills to the vector having an induced metric; routing the represented customer communication to an agent having the one or more agent skills; measuring, by a processor, performance of the agent in relation to the one or more agent skills during or after the customer communication based on data analysis using reinforcement learning; updating, by a processor in real-time, one or more performance scores of the agent in a skill profile based on data analysis using reinforcement learning, wherein the one or more performance scores are related to the one or more agent skills; and routing subsequent customer communications based on the updated one or more performance scores.
 9. The method of claim 8, wherein measuring performance of the agent comprises: defining, by a processor, a key performance indicator (KPI) in relation to each of the one or more agent skills; and measuring, by a processor, each KPI during or after the customer communication.
 10. The method of claim 9, further comprising: defining a threshold score for each KPI; and comparing the threshold score for each KPI to each updated performance score.
 11. The method of claim 10, further comprising providing an alert to an agent supervisor when an updated performance score is above or below the threshold score for a respective KPI.
 12. The method of claim 8, wherein further comprising: routing a plurality of additional customer communications to the agent based on the skill profile of the agent; continuously measuring, by a processor, performance of the agent in relation to a skill in the skill profile during or after each additional customer communication; continuously updating, by a processor in real-time, a performance score of the agent in the skill profile, wherein the performance score is related to the skill in the skill profile; and routing a plurality of future customer communications based on the updated performance score.
 13. A non-transitory computer-readable medium having stored thereon computer-readable instructions executable by a processor to perform operations which comprise: receiving a customer communication; representing the customer communication as a vector of one or more agent skills desired to handle the customer communication, the vector having an induced metric, wherein an auto encoder is used to convert the one or more agent skills to the vector having an induced metric; routing the represented customer communication to an agent having the one or more agent skills; measuring performance of the agent in relation to the one or more agent skills during or after the customer communication based on data analysis using reinforcement learning; updating, in real-time, one or more performance scores of the agent in a skill profile, wherein the one or more performance scores are related to the one or more agent skills based on data analysis using reinforcement learning; and routing subsequent customer communications based on the updated one or more performance scores.
 14. The non-transitory computer-readable medium of claim 13, wherein measuring performance of the agent comprises: defining, by a processor, a key performance indicator (KPI) in relation to each of the one or more agent skills; and measuring, by a processor, each KPI during or after the customer communication.
 15. The non-transitory computer-readable medium of claim 14, wherein the operations further comprise: defining a threshold score for each KPI; and comparing the threshold score for each KPI to each updated performance score.
 16. The non-transitory computer-readable medium of claim 15, wherein the operations further comprise providing an alert to an agent supervisor when an updated performance score is above or below the threshold score for a respective KPI.
 17. The non-transitory computer-readable medium of claim 13, wherein the operations further comprise: routing a plurality of additional customer communications to the agent based on the skill profile of the agent; continuously measuring performance of the agent in relation to a skill in the skill profile during or after each additional customer communication; continuously updating, in real-time, a performance score of the agent in the skill profile, wherein the performance score is related to the skill in the skill profile; and routing a plurality of future customer communications based on the updated performance score. 